package cn.b.sky.i18n.service;

import cn.b.sky.i18n.model.EcodeInfo;
import cn.b.sky.i18n.model.LocaleResourceInfo;
import cn.b.sky.i18n.model.SystemLanguageInfo;
import cn.b.sky.i18n.model.SystemTimeZoneInfo;

import java.util.List;

/**
 * 
 * <strong>Title : I18nService.java<br></strong>
 * <strong>Package : cn.b.sky.i18n.service<br></strong>
 * <strong>Description : </strong> 国际化服务接口<br> 
 * <strong>Create on : 2016-5-13 上午9:24:07<br></strong>
 * <p>
 * @author lidapeng<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人|修改日期|修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface I18nService {

  /**
   * 
   * <strong>Title : listLanguage<br></strong>
   * <strong>Description : </strong>获取系统语言<br> 
   * <strong>Create on : 2016-5-13 上午9:23:53<br></strong>
   * <p>
   * @return
   * List<SystemLanguageInfo>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<SystemLanguageInfo> listLanguage();

  /**
   * 
   * <strong>Title : listTimeZone<br></strong>
   * <strong>Description : </strong>获取系统时区<br> 
   * <strong>Create on : 2016-5-13 上午9:24:16<br></strong>
   * <p>
   * @return
   * List<SystemTimeZoneInfo>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<SystemTimeZoneInfo> listTimeZone();

  /**
   * 
   * <strong>Title : listLocaleResource<br></strong>
   * <strong>Description : </strong>获取国际化资源<br> 
   * <strong>Create on : 2016-5-13 上午9:24:26<br></strong>
   * <p>
   * @param resourceSet 语言集
   * @param languageCode 语言代码
   * @return
   * List<LocaleResourceInfo>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<LocaleResourceInfo> listLocaleResource(String resourceSet, String languageCode);

  /**
   * 
   * <strong>Title : listEcode<br></strong>
   * <strong>Description : </strong>获取枚举码<br> 
   * <strong>Create on : 2016-5-13 上午9:24:57<br></strong>
   * <p>
   * @param languageCode 语言代码
   * @return
   * List<EcodeInfo>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<EcodeInfo> listEcode(String languageCode);
  
  /**
   * 
   * <strong>Title : getLocaleResourceInfo<br></strong>
   * <strong>Description : </strong>获取具体的国际化信息<br> 
   * <strong>Create on : 2016-5-9 上午9:18:41<br></strong>
   * <p>
   * @param resourceSet
   * @param languageCode
   * @param key
   * @return
   * LocaleResourceInfo
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  LocaleResourceInfo getLocaleResourceInfo(String resourceSet, String languageCode, String key);
  
  /**
   * 
   * <strong>Title : listLocaleResourceBySite<br></strong>
   * <strong>Description : </strong>按工厂区分查询国际化资源<br> 
   * <strong>Create on : 2016年6月15日 下午12:58:17<br></strong>
   * <p>
   * @param siteCode
   * @param resourceSet
   * @param languageCode
   * @return
   * List<LocaleResourceInfo>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<LocaleResourceInfo> listLocaleResourceBySite(String siteCode, String resourceSet, String languageCode);
  
  /**
   * 
   * <strong>Title : flushLocaleResourceBundle<br></strong>
   * <strong>Description : </strong>刷新工厂级别的国际化缓存，工厂数据复制使用<br> 
   * <strong>Create on : 2016-6-16 下午4:52:12<br></strong>
   * <p>
   * @param siteCode 工长
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void flushLocaleResourceBundle(String siteCode);
  
  /**
   * 
   * <strong>Title : flushLocaleResourceBundleByLanguage<br></strong>
   * <strong>Description : </strong>新增语言时候刷新国际化缓存<br> 
   * <strong>Create on : 2016-6-28 上午10:06:58<br></strong>
   * <p>
   * @param siteCode 工厂
   * @param language 语言
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void flushLocaleResourceBundleByLanguage(String siteCode, String language);
  
  /**
   * 
   * <strong>Title : deleteLocaleResourceBundle<br></strong>
   * <strong>Description : </strong>删除国际化缓存<br> 
   * <strong>Create on : 2016-6-28 上午10:09:49<br></strong>
   * <p>
   * @param siteCode 工厂
   * @param language 语言
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteLocaleResourceBundle(String siteCode, String language);
  
}
